package com.atguigu.gulimall.coupon;

import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.cloud.client.discovery.EnableDiscoveryClient;
import org.springframework.cloud.openfeign.EnableFeignClients;

/**
 * 如何使用Nacos作为配置中心 统一管理配置
 * 1. 引入依赖
 * 2. 创建一个bootstrap.properties
 * 其中配置两个属性 当前应用名和nacos服务地址
 * 3. 需要给配置中心默认添加一个叫 数据集(Data Id) gulimall-coupon.properties
 * 4. 给应用名.properties添加任何配置
 * 5. 动态获取配置
 * 加上一个注解{@see @Refresh}
 * 如果配置中心和当前应用的配置文件中都配置了相同的项 优先使用配置中的配置
 * <p>
 * 细节
 * 1. 命名空间
 * 配置隔离 默认public(保留空间)
 * 开发 测试 生产 利用命名空间来做环境隔离
 * 注意：在bootstrap.properties需要使用哪个命名空间下的配置
 * <p>
 * 每一个微服务之间相互可以设置命名空间
 * 2. 配置集
 * 3. 配置集Id：类似文件名
 * Data Id
 * 4. 配置分组
 * 默认所有的配置集都属于：DEFAULT_GROUP
 * <p>
 * 每个微服务创建自己的命名空间
 * 使用配置分组来区分环境 dev test prop
 * <p>
 * 同时加载多个配置集
 * 1. 微服务任何配置信息 任何配置文件都可以放在配置中心中
 * 2. 只需要在bootstrap.properties说明加载配置中心中哪些配置文件即可
 * 3. @Value @ConfigurationProperties
 * 以前SpringBoot任何方法从配置文件中获取值 都能使用
 * 配置中心有的优先使用配置中心中的
 *
 * @author longwenchao
 */
@SpringBootApplication
@EnableDiscoveryClient
@EnableFeignClients
public class GulimallCouponApplication {

    public static void main(String[] args) {
        SpringApplication.run(GulimallCouponApplication.class, args);
    }

}
